package jp.co.worksap.workspace.wasprofile; import java.util.List; public class DataSources { public String returnScript(WebSphereProfileConfiguration wasConfig) { List<DataSourceConfiguration> dataSourceList = wasConfig.getDataSource(); if (dataSourceList == null) { return ""; } StringBuilder script = new StringBuilder(); for (DataSourceConfiguration dataSource : dataSourceList) { String name = dataSource.getName(); String jndiName = dataSource.getJndiName(); String databaseName = dataSource.getDatabaseName(); String driverType = dataSource.getDriverType(); String serverName = wasConfig.getServerName(); String portNumber = dataSource.getPortNumber(); String dataStoreHelperClassName = dataSource.getDataStoreHelperClassName(); String componentManagedAuthenticationAlias = dataSource.getComponentManagedAuthenticationAlias(); String xaRecoveryAuthAlias = dataSource.getXaRecoveryAuthAlias(); script.append("nodeList = AdminTask.listJDBCProviders().split('\\r\\n')\n"); script.append("jdbcProvider = nodeList[len(nodeList)-1]\n"); script.append("dsId = \"\"\n"); script.append("dsList = AdminConfig.getid(\"/DataSource:").append(name).append("\")\n"); script.append("if (len(dsList) > 0):\n"); script.append(" for item in dsList.split('\\n'):\n"); script.append(" item = item.rstrip()\n"); script.append(" jndiName = AdminConfig.showAttribute(item, \"jndiName\" )\n"); script.append(" if (\"").append(jndiName).append("\" == jndiName):\n"); script.append(" dsId = item\n"); script.append("if (dsId == \"\"):\n"); script.append(" AdminTask.createDatasource(jdbcProvider , ['-name', '").append(name) .append("', '-jndiName', '").append(jndiName) .append("', '-configureResourceProperties', '[[databaseName java.lang.String ").append(databaseName) .append("] [driverType java.lang.Integer ").append(driverType) .append("] [serverName java.lang.String ").append(serverName) .append("] [portNumber java.lang.Integer ").append(portNumber) .append("]]', '-dataStoreHelperClassName', '").append(dataStoreHelperClassName) .append("', '-componentManagedAuthenticationAlias', '").append(componentManagedAuthenticationAlias) .append("', '-xaRecoveryAuthAlias', '").append(xaRecoveryAuthAlias) .append("'])\n"); script.append("else:\n"); script.append(" print \"").append(name).append(" already exists in this JDBC Provider!\"\n"); script.append(" print \"Removing existing data source and creating a new one\"\n"); script.append(" AdminConfig.remove(dsId)\n"); script.append(" AdminConfig.save()\n"); script.append(" AdminTask.createDatasource(jdbcProvider , ['-name', '").append(name) .append("', '-jndiName', '").append(jndiName) .append("', '-configureResourceProperties', '[[databaseName java.lang.String ").append(databaseName) .append("] [driverType java.lang.Integer ").append(driverType) .append("] [serverName java.lang.String ").append(serverName) .append("] [portNumber java.lang.Integer ").append(portNumber) .append("]]', '-dataStoreHelperClassName', '").append(dataStoreHelperClassName) .append("', '-componentManagedAuthenticationAlias', '").append(componentManagedAuthenticationAlias) .append("', '-xaRecoveryAuthAlias', '").append(xaRecoveryAuthAlias) .append("'])\n"); } script.append("print 'Successfully configured data sources.'\n"); return script.toString(); } }